package com.yycx.module.user.provider.service;

import com.yycx.common.mybatis.base.service.IBaseService;
import com.yycx.common.base.entity.EntityMap;
import com.yycx.common.mybatis.callback.CriteriaQueryCallBack;
import com.yycx.module.user.client.entity.SysSlider;

import java.util.List;

/**
 * 轮播图 接口
 *
 * @author flyme
 * @date 2019-07-05
 */
public interface SysSliderService extends IBaseService<SysSlider> {


    /**
     * 根据类型获取轮播图
     *
     * @param sliderType
     * @return
     */
    List<EntityMap> listSliderByType(int sliderType);

    /**
     * 根据类型获取轮播图
     * @param sliderType
     * @param cqc
     * @return
     */
    List<EntityMap> listSliderByType(int sliderType, CriteriaQueryCallBack cqc);

    /**
     * 根据类型获取指定数量多张轮播图
     *
     * @param sliderType
     * @param count
     * @return
     */
    List<EntityMap> listBySliderType(int sliderType, int count);

    /**
     * 根据类型获取轮播图
     *
     * @param sliderType
     * @return
     */
    List<EntityMap> listBySliderType(int sliderType);


    /**
     * 根据类型获取一张轮播图
     *
     * @param sliderType
     * @return
     */
    EntityMap getOneBySliderType(Integer sliderType);

    /**
     * 查找轮播图
     *
     * @param sliderType
     * @param moduleId
     * @return
     */
    List<EntityMap> listBySliderTypeAndModuleId(int sliderType, int moduleId);

    /**
     * 跟模块和轮播图类型查询指定数量的轮播图
     * @param moduleId
     * @param sliderType
     * @param limit
     * @return
     */
    List<EntityMap> listBySliderTypeAndModuleId(long moduleId,int sliderType,  int limit);

}
